const fp = require('lodash/fp')

const cars = [
  {name:'Ferrari FF',horsepower:660,dollar_value:700000,in_stock:true},
  {name:'Spyker C12 Zagato',horsepower:650,dollar_value:648000,in_stock:false},
  {name:'Jaguar XKR-S',horsepower:550,dollar_value:132000,in_stock:false},
  {name:'Audi R8',horsepower:525,dollar_value:114200,in_stock:false},
  {name:'Aston Martin One-77',horsepower:750,dollar_value:1850000,in_stock:true},
  {name:'Pagani Huayra',horsepower:700,dollar_value:1300000,in_stock:false}
]
//练习1
let isLastInStock = fp.flowRight(fp.prop('in_stock'),fp.last)
console.log(isLastInStock(cars)) // false

//练习2
let isFirstInStock = fp.flowRight(fp.prop('name'),fp.first)
console.log(isFirstInStock(cars)) // Ferrari FF

//练习3
let _average = function(xs){
  return fp.reduce(fp.add,0,xs) / xs.length
}
let _getDollar = car=>car.dollar_value //获取金额的方法
let averageDollerValue = fp.flowRight(_average,fp.map(_getDollar))
console.log(averageDollerValue(cars)); // 790700

//练习4
let _underscore = fp.replace(/\W+/g,'_')
let _getName = car=>car.name
let sanitizeNames =fp.map(fp.flowRight(_underscore,_getName))
console.log(sanitizeNames(cars));//['Ferrari_FF','Spyker_C12_Zagato','Jaguar_XKR_S','Audi_R8','Aston_Martin_One_77','Pagani_Huayra']
